package cn.lf.service;

import cn.lf.dto.api.order.UserOrderDetailRepDTO;
import cn.lf.dto.api.order.UserOrderInfoGetRepDTO;
import cn.lf.dto.api.order.UserOrderInfoGetReqDTO;
import cn.lf.dto.order.*;
import com.baomidou.mybatisplus.core.metadata.IPage;

public interface ApiOrderService {

    /**
     * 创建用户订单信息
     * @param userOrderInfoGenReqDTO
     * @return
     */
    void createUserOrderInfo(UserOrderInfoGenReqDTO userOrderInfoGenReqDTO);

    /**
     * 获取用户的订单列表信息
     * @param userOrderInfoGetReqDTO
     * @return
     */
    IPage<UserOrderInfoGetRepDTO> getUserOrderInfo(UserOrderInfoGetReqDTO userOrderInfoGetReqDTO);

    /**
     *
     * @param orderId
     * @return
     */
    UserOrderDetailRepDTO getUserOrderDetailById(String orderId);

    /**
     * 为订单付款
     * @param pfoReqDTO
     */
    void paymentForOrder(PfoReqDTO pfoReqDTO);

    /**
     * 取消订单
     * @param cancelOrderReqDTO
     */
    void cancelOrder(CancelOrderReqDTO cancelOrderReqDTO);

    /**
     * 申请退款
     * @param aorReqDTO
     */
    void applyOrderRefund(AorReqDTO aorReqDTO);
}
